package cn.demoncat.util.lang.entity;

import java.math.BigDecimal;

import cn.demoncat.util.lang.constant.StringConstant;

/**
 * null转默认值
 * <br/>
 * 功能：子类继承，然后使用 nullToEmpty()或nullToDefault() 快速修改get/set方法
 * 
 * @author 延晓磊
 *
 * @since 2018年5月2日
 */
public class NullDefault {

	/**
	 * null转空
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected BigDecimal nullToEmpty(BigDecimal o){
		return o == null ? BigDecimal.ZERO : o;
	}
	/**
	 * null转空
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected Integer nullToEmpty(Integer o){
		return o == null ? 0 : o;
	}
	/**
	 * null转空
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected String nullToEmpty(String o){
		return o == null ? StringConstant.EMPTY : o;
	}
	/**
	 * null转空
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected Float nullToEmpty(Float o){
		return o == null ? 0 : o;
	}
	/**
	 * null转空
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected Double nullToEmpty(Double o){
		return o == null ? 0 : o;
	}
	/**
	 * null转空
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected Long nullToEmpty(Long o){
		return o == null ? 0 : o;
	}
	
	/**
	 * null转默认值
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected BigDecimal nullToDefault(BigDecimal o,BigDecimal val){
		return o == null ? val : o;
	}
	/**
	 * null转默认值
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected Integer nullToDefault(Integer o,Integer val){
		return o == null ? val : o;
	}
	/**
	 * null转默认值
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected String nullToDefault(String o,String val){
		return o == null ? val : o;
	}
	/**
	 * null转默认值
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected Float nullToDefault(Float o,Float val){
		return o == null ? val : o;
	}
	/**
	 * null转默认值
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected Double nullToDefault(Double o,Double val){
		return o == null ? val : o;
	}
	/**
	 * null转默认值
	 * 
	 * @param o
	 * @return
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年5月2日
	 */
	protected Long nullToDefault(Long o,Long val){
		return o == null ? val : o;
	}
}
